<?php
/**
 * @package Joostina BOSS
 * @copyright Авторские права (C) 2008-2010 Joostina team. Все права защищены.
 * @license Лицензия http://www.gnu.org/licenses/gpl-2.0.htm GNU/GPL, или help/license.php
 * Joostina BOSS - свободное программное обеспечение распространяемое по условиям лицензии GNU/GPL
 * Joostina BOSS основан на разработках Jdirectory от Thomas Papin
 */
defined('_VALID_MOS') or die();
if (!defined('BOSS_URL_LOADED')) {

    define('BOSS_URL_LOADED', 1);

    class BossURL {
        //отображение поля в категории
        function getListDisplay($directory, $content, $field, $field_values, $itemid, $conf) {
            return $this->getDetailsDisplay($directory, $content, $field, $field_values, $itemid, $conf);
        }

        //отображение поля в контенте
        function getDetailsDisplay($directory, $content, $field, $field_values, $itemid, $conf) {
            $fieldname = $field->name;
            $value = (isset ($content->$fieldname)) ? $content->$fieldname : '';
            if(!$value)
                return;

            $return = '';
            if(!empty($field->text_before))
                $return .= '<span>'.$field->text_before.'</span>';
            if(!empty($field->tags_open))
                $return .= html_entity_decode($field->tags_open);

            $linkObj = '';
            if ((isset($field->link_image)) && (file_exists(JPATH_BASE . "/images/boss/$directory/fields/" . $field->link_image))) {
                $linkObj .= "<img src='" . JPATH_SITE . "/images/boss/$directory/fields/" . $field->link_image . "' />";
            }
            if ((isset($field->link_text)) && ($field->link_text != ""))  {
                $linkObj .= $field->link_text;
            }
            else {
                $linkObj .= $value;
            }

            if ($value != "") {
                $return .= "<a href='http://".$value."' target='_blank'>$linkObj</a>";
            }

            if(!empty($field->tags_close))
                $return .= html_entity_decode($field->tags_close);
            if(!empty($field->text_after))
                $return .= '<span>'.$field->text_after.'</span>';

            return $return;
        }

        //функция вставки фрагмента ява-скрипта в скрипт
        //сохранения формы при редактировании контента с фронта.
        function addInWriteScript($field){

        }

        //отображение поля в админке в редактировании контента
        function getFormDisplay($directory, $content, $field, $field_values, $nameform = 'adminForm', $mode = "write") {
            $fieldname = $field->name;
            $value = (isset ($content->$fieldname)) ? $content->$fieldname : '';
            $strtitle = htmlentities(jdGetLangDefinition($field->title), ENT_QUOTES, 'utf-8');

            $read_only = (($mode == "write") && ($field->editable == 0)) ?  " readonly=true " : '';
            $req = (($mode == "write") && ($field->required == 1)) ? " class='boss_required' mosReq='1' " : " class='boss' ";

            $return = "http://";
            $return .= "<input $req id='" . $field->name . "' type='text' mosLabel='" . $strtitle . "' name='" . $field->name . "' size='$field->size' maxlength='$field->maxlength' $read_only value='" . htmlspecialchars($value, ENT_QUOTES) . "' />\n";

            return $return;
        }

        function onFormSave($directory, $contentid, $field, $isUpdateMode, $itemid) {
            $return = mosGetParam($_POST, $field->name, "");
            return $return;
        }

        function onDelete($directory, $contentid = -1) {
            return;
        }

        function getEditFieldJavaScriptDisable() {
            return;
        }

        function getEditFieldJavaScriptActive() {
            $return  = "disableAll();
                    elem = getObject('divTextLength');
                    elem.style.visibility = 'visible';
                    elem.style.display = 'block';
                    elem = getObject('divLink');
                    elem.style.visibility = 'visible';
                    elem.style.display = 'block';";
            return $return;
        }

        //отображение поля в админке в настройках поля
        function getEditFieldOptions($fieldid, $directory) {
            $return = "";
            return $return;
        }

        //действия при сохранении настроек поля
        function saveFieldOptions($directory, $field) {
            //если плагин не создает собственных таблиц а пользется таблицами босса то возвращаем false
            //иначе true
            return false;
        }

        //имя типа поля в выпадающем списке в настройках поля
        function getFieldName() {
            return "URL";
        }

        //действия при установке плагина
        function install($directory) {
            return;
        }

        //действия при удалении плагина
        function uninstall($directory) {
            return;
        }

        //действия при поиске
        function search($directory,$fieldName) {
            $search = '';
            $value = mosGetParam( $_REQUEST, $fieldName, "" );
					if ($value != "") {
						$search .= " AND a.$fieldName LIKE '%$value%'";
					}
            return $search;
        }
    }
}
$bossPlugins['url'] = new BossURL();
?>